class Person {
  // 成员属性,  在默认的 strictPropertyInitialization 模式下面我们的属性是必须初始化的，如果没有初始化，那么编译时就会报错；

  // name: string;
  // age: number;

  // 初始化1：
  // name: string = "";
  // age: number = 0;

  // 初始化2：
  // name: string
  // age: number
  // constructor(name: string, age: number) {
  //   this.name = name;
  //   this.age = age;
  // }

  // 初始化3：
  name!: string;
  age!: number;

  eating() {
    // 这里的this会更加上下文推导
    console.log(this.name);
  }
}

const p1: Person = new Person();
p1.age = 12;
p1.name = "zs";
console.log(p1.name, p1.age);

export {};
